package com.cencat.merchant.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商家统计视图对象
 * @author cencat
 * @since 2024-01-01
 */
@Data
@Schema(description = "商家统计视图对象")
public class MerchantStatisticsVO {

    @Schema(description = "商家总数", example = "100")
    private Long totalMerchants;

    @Schema(description = "正常商家数", example = "80")
    private Long activeMerchants;

    @Schema(description = "禁用商家数", example = "10")
    private Long disabledMerchants;

    @Schema(description = "待审核商家数", example = "5")
    private Long pendingMerchants;

    @Schema(description = "已审核商家数", example = "90")
    private Long approvedMerchants;

    @Schema(description = "审核拒绝商家数", example = "5")
    private Long rejectedMerchants;

    @Schema(description = "青铜等级商家数", example = "50")
    private Long bronzeMerchants;

    @Schema(description = "白银等级商家数", example = "30")
    private Long silverMerchants;

    @Schema(description = "黄金等级商家数", example = "15")
    private Long goldMerchants;

    @Schema(description = "铂金等级商家数", example = "4")
    private Long platinumMerchants;

    @Schema(description = "钻石等级商家数", example = "1")
    private Long diamondMerchants;

    @Schema(description = "今日新增商家数", example = "5")
    private Long todayNewMerchants;

    @Schema(description = "本周新增商家数", example = "20")
    private Long weekNewMerchants;

    @Schema(description = "本月新增商家数", example = "80")
    private Long monthNewMerchants;

    @Schema(description = "本年新增商家数", example = "500")
    private Long yearNewMerchants;

    @Schema(description = "商家用户总数", example = "500")
    private Long totalMerchantUsers;

    @Schema(description = "活跃商家用户数", example = "400")
    private Long activeMerchantUsers;

    @Schema(description = "今日登录用户数", example = "50")
    private Long todayLoginUsers;

    @Schema(description = "平均每个商家用户数", example = "5.0")
    private BigDecimal avgUsersPerMerchant;

    @Schema(description = "统计时间", example = "2024-01-01T10:00:00")
    private LocalDateTime statisticsTime;
}